package com.aterrizar.dominio.validacion;

import java.security.SecureRandom;

import com.aterrizar.dominio.validacion.estado.EstadoDeValidacion;
import com.aterrizar.dominio.validacion.estado.NoValidado;

public class Validacion {
	
	private Integer id;
	private EstadoDeValidacion estado;
	private String clave;
	
	public EstadoDeValidacion getEstado() {
		return estado;
	}
	
	public void setEstado(EstadoDeValidacion estado) {
		this.estado = estado;
	}

	public String getClave() {
		return clave;
	}

	public void setClave(String clave) {
		this.clave = clave;
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	
	public Validacion() {
		this.estado = NoValidado.getInstance();
		this.clave = generarClave();
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////

	private String generarClave() {
		String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		String clave = "";
		SecureRandom random = new SecureRandom();
		for (int i = 0; i < 8; i++) {
		    char c = chars.charAt(random.nextInt(chars.length()));
		    clave += c;
		}
		return clave;
	}

	public boolean estaValidado() {
		return getEstado().estaValidado();
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

}
